/*
day341 
2020.8.3 
*/
#include<iostream>
#include<cstdlib>
#include<vector>
using namespace std;

class Solution {
public:
    int maxUncrossedLines(vector<int>& A, vector<int>& B) {
		int size_A=A.size(),size_B=B.size();
		int **arr=new int*[size_A+1];
		for(int i=0;i<=size_A;++i)
		{
			arr[i]=new int[size_B+1];
			for(int j=0;j<=size_B;++j)
			{
				arr[i][j]=0;
			}
		}
		
		for(int i=0;i<size_A;++i)
		{
			for(int j=0;j<size_B;++j)
			{
				if(A[i]==B[j])
				{
					arr[i+1][j+1]=arr[i][j]+1;
				}
				else
				{
					arr[i+1][j+1]=max(arr[i][j+1],arr[i+1][j]);
				}
			}
		}
		
		return arr[size_A][size_B];
    }
};

int main()
{
	return 0;
}
